package com.xq.jltx.actiontoolsbar;

import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.ActionBar;
import android.support.v7.app.AppCompatActivity;
import android.text.TextUtils;
import android.view.Menu;
import android.view.MenuItem;
import android.view.ViewConfiguration;

import com.xq.jltx.utils.XqToast;

import java.lang.reflect.Field;

public class OriginBarActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_origin_bar);
        Intent intent = getIntent();
        Bundle bundle = intent.getExtras();
        String title = bundle.getString("title");
        if(!TextUtils.isEmpty(title)){
            setTitle(title);
        }
        initActionBar();
    }

    private void initActionBar(){
        ActionBar actionBar = getSupportActionBar();
        actionBar.setDisplayHomeAsUpEnabled(true); //决定左上角图标的右侧是否有向左的小箭头, 默认是false没有返回的小箭头，若设置true有小箭头，并且图标可以点击
        actionBar.setHomeAsUpIndicator(R.drawable.actionbar_back);  //代码更改左上角向左的图标，也可在theme主题里面更改
        actionBar.setDisplayShowHomeEnabled(false);   //是否在Title旁边是否显示程序logo图标，默认是true显示logo图标，设置false表示不显示
        actionBar.setHomeButtonEnabled(false);  //设置已显示的logo图标是否可点击,默认为false不可点击
        setOverflowButtonAlways();

    }

    /**
     * 通过反射的方式显示actionbar的右上角的按键
     * 通常来说在Actionbar中在条目过多时会显示三个竖着的小点的菜单，但在实机测试的时候发现并不显示，查找资料并测试之后发现问题所在：如果该机器拥有实体的menu键则不在右侧显示溢出菜单，而改为按menu来生成。这样就不利于统一的界面风格。
     * 我们可以改变系统探测实体menu键的存在与否来改变这个的显示
     */
    private void setOverflowButtonAlways()
    {
        try
        {
            ViewConfiguration config = ViewConfiguration.get(this);
            Field menuKey = ViewConfiguration.class.getDeclaredField("sHasPermanentMenuKey");
            menuKey.setAccessible(true);
            menuKey.setBoolean(config, false);
        } catch (Exception e)
        {
            e.printStackTrace();
        }
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.origin_action_menu,menu);
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        switch (item.getItemId()) {
            case android.R.id.home:// 点击返回图标事件
                XqToast.showToastShortMsg(this,"返回上一个页面");
                finish();
                break;
            case R.id.share:
                XqToast.showToastShortMsg(this,"share");
                break;
            case R.id.undo:
                XqToast.showToastShortMsg(this,"undo");
                break;
            case R.id.redo:
                XqToast.showToastShortMsg(this,"redo");
                break;
            case R.id.save:
                XqToast.showToastShortMsg(this,"save");
                break;
            default:
                break;
        }
        return super.onOptionsItemSelected(item);
    }

}
